<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="./js/vue.js"></script>
    <title>Vue事件处理</title>
</head>
<body>
    <div id="root">
        <!-- 
        事件的基本使用: 
         1.使用v-on:xxx或@xxx 绑定事件，其中xxx是事件名
         2.事件的回调需要配置在methods对象中，最终会在vm实例上挂载
         3.methods中配置的函数，不需要使用箭头函数，否则this就不是vm了，就是window对象了
         4.methods中配置的函数，都是被Vue所管理的函数，this指向vm实例或组件实例对象
         5.@click="demo" 和 @click="demo($event)" 两种写法都可以，第二种传参方式可以获取事件对象
        -->
        <h1>欢迎来到{{name}}学习</h1>
        <button v-on:click="showInfo1">点我提示信息</button>
        <!-- v-on:click="showInfo" 简写为 @click -->
         <button @click="showInfo1">点我提示信息1(不传参)</button>
         <button @click="showInfo2(66,$event)">点我提示信息2(传参)</button>
    </div>
</body>
<script>
    var vm = new Vue({
        el: '#root',
        data: {
            name: '尚硅谷'
        },
        methods: {
            //使用这种方式输出的this是当前winows对象，而不是vm实例
            showInfo1: function(event) {
                //输出的是这个按钮的event对象
            // showInfo:(event) => {
                //输出的是这个按钮的event对象
                // console.log(event);
                // this指向vm实例
                console.log(this);
                // console.log(this == vm);
                alert('欢迎学习，' + this.name + '！')
            },
            showInfo2: function(number, event) {
                console.log(number, event);
                alert('欢迎学习，' + this.name + '！!')
            }
        }
    })          
</script>
</html>